package ua.diploma.registration;

import ua.diploma.hibernate.dto.User;

/**
 * Интерфейс сервиса регистрации
 * 
 * @author netstalk3r
 * 
 */
public interface RegistrationService {

	/**
	 * Регистрация юзера
	 * 
	 * @param user
	 *            регистрируемый юзер
	 * @throws RegistrationException
	 *             ошибка регистрации
	 */
	void registerUser(User user) throws RegistrationException;

	/**
	 * Активация юзера
	 * 
	 * @param activationHash
	 *            хэш для активации
	 * @return активированный юзер
	 */
	User activateAccount(String activationHash) throws ActivationException;

	/**
	 * Поиск юзера по email
	 * 
	 * @param email
	 * @return user
	 */
	User getUserByEmail(String email);

	/**
	 * Поиск юзера по логину
	 * 
	 * @param login
	 * @return user
	 */
	User getUserByLogin(String login);

}
